<?php
class TextosController extends AppController {

	var $name = 'Textos';
        var $uses = array('Texto', 'Comentario');
	var $helpers = array('Html', 'Form', 'Javascript', 'CakePtbr.Formatacao');

        function exibe($slug, $comentar = null){
            $this->Texto->recursive = 2;
            $texto = $this->Texto->findBySlug($slug);
            $this->Comentario->recursive = 0;
            $comentarios = $this->Comentario->find('all', array('conditions'=>array('texto_id'=>$texto['Texto']['id'])));
            $secao = $this->Texto->Categoria->Secao->find('all', array('conditions'=>array('id'=>$texto['Categoria']['secao_id'])));
            $this->set(compact('texto', 'comentarios','secao'));
            if($comentar)
                $this->set('comentar', true);
            else
                $this->set('comentar', false);
        }

	function novo() {
		if (!empty($this->data)) {
			$this->Texto->create();
			if ($this->Texto->save($this->data)) {
				$this->Session->setFlash(__('Seu texto foi enviado!', true));
                                $this->data = $this->Texto->read(null, $this->Texto->id);
				$this->redirect(array('action'=>'exibe','id'=>$this->data['Texto']['slug']));
			} else {
				$this->Session->setFlash(__('The Texto could not be saved. Please, try again.', true));
			}
		}
                $conditions = array('Mondano.id'=>$this->Session->read('Usuario.id'));
		$usuarios = $this->Texto->Mondano->find('list', array('fields'=>'nick','conditions'=>$conditions));
                $secoes = $this->Texto->Categoria->Secao->find('all');
                $edicoes = $this->Texto->Edicao->find('list');
		$this->set(compact('usuarios', 'secoes', 'edicoes'));
	}

	function edit($id = null) {
		if (!$id && empty($this->data)) {
			$this->Session->setFlash(__('Texto Inválido', true));
			$this->redirect(array('action'=>'destaques'));
		}
		if (!empty($this->data)) {
			if ($this->Texto->save($this->data)) {
				$this->Session->setFlash(__('O Texto foi alterado com sucesso!', true));
                                $this->data = $this->Texto->read(null, $this->Texto->id);
				$this->redirect(array('action'=>'exibe','id'=>$this->data['Texto']['slug']));
			} else {
				$this->Session->setFlash(__('O Texto não pode ser salvo. Por favor, tente novamente.', true));
			}
		}
		if (empty($this->data)) {
			$this->data = $this->Texto->read(null, $id);
		}
                $conditions = array('Mondano.id'=>$this->data['Mondano']['id']);
		$usuarios = $this->Texto->Mondano->find('list', array('fields'=>'nick', 'conditions'=>$conditions));
                $secoes = $this->Texto->Categoria->Secao->find('all');
                $edicoes = $this->Texto->Edicao->find('list');
		$this->set(compact('secoes','usuarios','edicoes'));
	}

	function admin_index() {
		$this->Texto->recursive = 0;
		$this->set('textos', $this->paginate());
	}

	function admin_view($id = null) {
		if (!$id) {
			$this->Session->setFlash(__('Invalid Texto.', true));
			$this->redirect(array('action'=>'index'));
		}
		$this->set('texto', $this->Texto->read(null, $id));
	}

	function admin_add() {
		if (!empty($this->data)) {
			$this->Texto->create();
			if ($this->Texto->save($this->data)) {
				$this->Session->setFlash(__('The Texto has been saved', true));
				$this->redirect(array('action'=>'index'));
			} else {
				$this->Session->setFlash(__('The Texto could not be saved. Please, try again.', true));
			}
		}
		$categorias = $this->Texto->Categoria->find('list');
		$mondanos = $this->Texto->Mondano->find('list');
		$this->set(compact('categorias', 'mondanos'));
	}

	function admin_edit($id = null) {
		if (!$id && empty($this->data)) {
			$this->Session->setFlash(__('Invalid Texto', true));
			$this->redirect(array('action'=>'index'));
		}
		if (!empty($this->data)) {
			if ($this->Texto->save($this->data)) {
				$this->Session->setFlash(__('The Texto has been saved', true));
				$this->redirect(array('action'=>'index'));
			} else {
				$this->Session->setFlash(__('The Texto could not be saved. Please, try again.', true));
			}
		}
		if (empty($this->data)) {
			$this->data = $this->Texto->read(null, $id);
		}
		$usuarios = $this->Texto->Mondano->find('list', array('fields'=>'nick'));
                $secoes = $this->Texto->Categoria->Secao->find('all');
		$this->set(compact('secoes','usuarios'));
	}

	function admin_delete($id = null) {
		if (!$id) {
			$this->Session->setFlash(__('Invalid id for Texto', true));
			$this->redirect(array('action'=>'index'));
		}
		if ($this->Texto->del($id)) {
			$this->Session->setFlash(__('Texto deleted', true));
			$this->redirect(array('action'=>'index'));
		}
	}

        function destaques(){
            $this->pageTitle = 'Destaques';
            $destaques = $this->Texto->find('all', array('limit'=>8));
            $this->set('destaques', $destaques);
            $comentarios_recentes = $this->Texto->Comentario->find('all', array('limit'=>3));
            $this->set('comentarios_recentes', $comentarios_recentes);
            $this->set('edicoes', $this->Texto->Edicao->find('all'));
        }

        function edicao($edicao = null){
            $this->Texto->recursive = 2;
            $this->set('textos', $this->Texto->findAllByEdicaoId($edicao));
            $this->set('edicao', $edicao);
        }
}
?>